void main(List<String> args) {
  List<String> list = ["123"];
  Map<String, int> map = {};
  String str = getTypeValue<String>("abc");
  int count = getTypeValue(0);
  bool isMarry = getTypeValue(false);

  ListDataSource<String> list2 = ListDataSource();
}

// 函数的泛型
T getTypeValue<T>(T value) {
  return value;
}

// lazyForach 必须实现并继承IDataSource
class ListDataSource<T> {
  List<T> _originArr = [];
  int totalCount() {
    return this._originArr.length;
  }

  T getData(int index) {
    return this._originArr[index];
  }

  registerDataListener(listener) {}
  unregisterDataListener() {}
}